package com.keyware.utils.keycloud;


import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;

/** 
 * @ClassName: KeyGenerater
 * @Description: 公钥、私钥生成器 (私钥加密 公钥解密)
 * @author yanwj
 * @date 2015年12月8日 下午5:46:58
 * 
 */
public class KeyGenerater {
	private byte[] priKey;
	private byte[] pubKey;
	private static String companyName= "keyCloud_20181204_0409";
	/**
	 * 公钥、私钥生成器 (私钥加密 公钥解密)
	 * @param companyName
	 */
	public void generater() {
		try {
			KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
			SecureRandom secrand = new SecureRandom();
			//secrand.setSeed("www.给某个公司用的.com".getBytes()); // 初始化随机产生器
			secrand.setSeed(companyName.getBytes()); // 初始化随机产生器
			keygen.initialize(1024, secrand);
			KeyPair keys = keygen.genKeyPair();
			PublicKey pubkey = keys.getPublic();
			PrivateKey prikey = keys.getPrivate();
			// pubKey = Base64.encodeToByte(pubkey.getEncoded());
			// priKey = Base64.encodeToByte(prikey.getEncoded());
			// 私钥加密 公钥解密
			pubKey = Base64Util.encodeToByte(pubkey.getEncoded());
			priKey = Base64Util.encodeToByte(prikey.getEncoded());
		} catch (java.lang.Exception e) {
			System.out.println("生成密钥对失败!");
			e.printStackTrace();
		}
	}

	public byte[] getPriKey() {
		return priKey;
	}

	public byte[] getPubKey() {
		return pubKey;
	}
}